#include <STC/STC89C5xRC.H>
#include <intrins.h> // Intrinsic functions

#define uint unsigned int
#define uchar unsigned char

/**
 * 毫秒级延时
 * 12T
 * Fosc = 11.0592 MHz
 * @param ms 延时毫秒数，设定的取值范围：0~65535
 */
void delay(uint ms)
{
	uint x, y;
	for (x = ms; x > 0; x--)
		for (y = 114; y > 0; y--)
			;
}

/**
 * 流水灯
 * @ref main函数自身会循环
 */
void main()
{
	uchar temp = 0xfe;

	P1 = temp;	// 初始化，LED1亮，1111 1110(2)
	delay(100); // 延时100毫秒
	while (1)
	{
		temp = _crol_(temp, 1); // 循环左移
		P1 = temp;				// 临时变量完成移位后，赋值给P1，逐灯点亮
		delay(100);
	}
}
